package com.ctvit.breadking.news.core.solr.repository;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.LBHttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;

/**
 * Solr文档资源库
 *
 * @author heyingcheng
 * @date 2024/10/2
 */
public interface SolrDocumentRepository {

    /**
     * 添加文档数据
     *
     * @param collection 集合
     * @param documentId 文档ID
     * @param document   文档对象
     * @return boolean 添加结果
     */
    boolean add(String collection, String documentId, SolrInputDocument document);

    /**
     * 删除文档数据
     *
     * @param collection 集合
     * @param documentId 文档ID
     * @return boolean
     */
    boolean deleteById(String collection, String documentId);

    /**
     * 查询文档数据
     *
     * @param lbHttpSolrClient Solr客户端
     * @param solrQuery        查询条件
     * @return {@link SolrDocumentList}
     */
    QueryResponse query(LBHttpSolrClient lbHttpSolrClient, SolrQuery solrQuery);

}
